package top.as.sean.biz.system;

import com.baomidou.mybatisplus.extension.service.IService;
import top.as.sean.dao.dto.system.MenuAdd;
import top.as.sean.dao.dto.system.MenuEdit;
import top.as.sean.dao.dto.system.MenuSearch;
import top.as.sean.dao.entity.pojo.system.Menu;
import top.as.sean.dao.vo.system.MenuTree;
import top.as.sean.dao.vo.system.RoleMenuTree;

import java.util.List;

/**
 * 菜单
 *
 * @author: ArchieSean
 * @create: 2022/11/8
 */
public interface IMenu extends IService<Menu> {
    /**
     * 新增菜单
     *
     * @param dto 入参
     * @return boolean
     */
    Boolean addMenu(MenuAdd dto);

    /**
     * 查询menu树形结构
     *
     * @param dto 入参
     * @return list
     */
    List<MenuTree> queryMenuTree(MenuSearch dto);

    /**
     * 编辑
     *
     * @param dto 入参
     * @return boolean
     */
    Boolean editMenu(MenuEdit dto);

    /**
     * 删除menu
     *
     * @param id id
     * @return boolean
     */
    Boolean deleteMenu(Long id);

    /**
     * 查询所有菜单 【正常状态】
     *
     * @return list
     */
    List<RoleMenuTree> queryAllMenu();

    /**
     * 查询所有动态路由
     *
     * @return list
     */
    List<Menu> queryMenu();
}
